/******************************************************
 * Cours: LOG121
 * Session: A2012
 * Groupe: 01 Projet: Laboratoire #2
 * Étudiant(e)s: Guillaume Boulay
 *               Raphael Faucher
 * Professeur et chargé de labo : Patrice Boucher
 * Nom du fichier: DiceList.java
 * Date crée: 2012-11-09
 * Date dern. modif. 2012-11-19
 ******************************************************* 
 * Historique des modifications
 ******************************************************* 
 * 2012-11-09 Version initiale (Raphael Faucher) 
 * 2012-11-19 Modification de l'interface et 
 *            de la documentation (Guillaume Boulay)
 *******************************************************/

import java.util.ArrayList;
import java.util.Iterator;

public class DiceList
{
	private ArrayList<Dice> diceArray = new ArrayList<Dice>();
	
	/**
	 * Permet l'ajout de dé qui seront compris lors de l'appel des commandes
	 * fonctionnant sur tous les dés.
	 * 
	 * @param aDice un dé non null.
	 */
	public void addDice(Dice aDice)
	{
	    assert aDice != null;
	    
		this.diceArray.add(aDice);
	}
	
	/**
	 * Fait un Dice.roll() sur chaque dé et retourne un tableau des valeurs.
	 * 
	 * @return un tableau des daleurs des Dices.roll().
	 */
	public int[] rollDices()
	{
		int[] values = new int[this.diceArray.size()];
		int position = 0;
		
		for (Dice dice: this.diceArray)
			values[position++] = dice.roll();

		return values;
	}
	
	/**
	 * Retourne l'iterator des dés.
	 * 
	 * @return l'iterator des dés,
	 */
	public Iterator<Dice> createIterator()
	{
		return this.diceArray.iterator();
	}
}
